package com.programmeur.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.programmeur.beans.News;

public class DAOUtilitaire {

	private DAOUtilitaire() {

	}

	public static void fermetureSilencieuse(ResultSet resultset) {
		if (resultset != null) {
			try {
				resultset.close();
			} catch (SQLException e) {
				System.out.println("echec de la fermeture du resultset "
						+ e.getMessage());
			}
		}
	}

	public static void fermetureSilencieuse(Statement statement) {
		if (statement != null) {
			try {
				statement.close();
			} catch (SQLException e) {
				System.out.println("echec de la fermeture du resultset "
						+ e.getMessage());
			}
		}
	}

	public static void fermetureSilencieuse(Connection connection) {
		if (connection != null) {
			try {
				connection.close();
			} catch (SQLException e) {
				System.out.println("echec de la fermeture du resultset "
						+ e.getMessage());
			}
		}
	}

	public static void fermeturesSilencieuses(Statement statement,
			Connection connexion) {
		fermetureSilencieuse(statement);
		fermetureSilencieuse(connexion);
	}

	/* Fermetures silencieuses du resultset, du statement et de la connexion */
	public static void fermeturesSilencieuses(ResultSet resultSet,
			Statement statement, Connection connexion) {
		fermetureSilencieuse(resultSet);
		fermetureSilencieuse(statement);
		fermetureSilencieuse(connexion);
	}

	public static PreparedStatement initialisationRequetePreparee(
			Connection connection, String sql, boolean returnGeneratedKeys,
			Object... objets) throws SQLException {
		PreparedStatement preparedStatement = connection.prepareStatement(sql,
				returnGeneratedKeys ? Statement.RETURN_GENERATED_KEYS
						: Statement.NO_GENERATED_KEYS);
		for (int i = 0; i < objets.length; i++) {
			preparedStatement.setObject(i + 1, objets[i]);
		}
		return preparedStatement;
	}

	public static News map(ResultSet resultSet) throws SQLException {
		News news = new News();
		news.setId(resultSet.getInt("id"));
		news.setLien_image(resultSet.getString("image"));
		news.setTexte(resultSet.getString("texte"));
		news.setTitre(resultSet.getString("titre"));

		return news;
	}

}
